package com.game.cards;

import java.util.ArrayList;
import java.util.List;

import com.game.play.Events;
import com.game.play.Game;

public abstract class MonsterCard extends BaseCard{
	
	protected int attack;
	protected int defense;
	protected Type type;
	protected Attribute attribute;
	protected int stars;
	protected int attacksPerTurn;
	protected int attacks;
	protected Events trigger;
	
	protected List<Flags> flags;
	
	
	public MonsterCard()
	{
		this.attacks = 1;
		this.attacksPerTurn = 1;
		this.trigger = null;
		this.flags = new ArrayList<Flags>();
	}
	
public void effect(Game game){
		
		
		
	}
public boolean test(Game game) {
	return false;
}
	
	
	public int getAttack() {
		return attack;
	}
	public void setAttack(int attack) {
		this.attack = attack;
	}
	public int getDefense() {
		return defense;
	}
	public void setDefense(int defense) {
		this.defense = defense;
	}
	public int getStars() {
		return stars;
	}
	public void setStars(int stars) {
		this.stars = stars;
	}

	public Type getType() {
		return type;
	}

	public void setType(Type type) {
		this.type = type;
	}

	public Attribute getAttribute() {
		return attribute;
	}

	public void setAttribute(Attribute attribute) {
		this.attribute = attribute;
	}
	
	public int getTributes() {
		if (this.stars <= 4) return 0;
		else if (this.stars == 5 || this.stars == 6) return 1;
		else if (this.stars == 7 || this.stars == 8) return 2;
		else if (this.stars >= 9) return 3;
		return 0;
		
	}
	
	public int getAttacksPerTurn() {
		return attacksPerTurn;
	}


	public void setAttacksPerTurn(int attacksPerTurn) {
		this.attacksPerTurn = attacksPerTurn;
	}


	public int getAttacks() {
		return attacks;
	}


	public void setAttacks(int attacks) {
		this.attacks = attacks;
	}


	public void printInfo()
	{
		System.out.println("Title: " + this.title);
		System.out.println("Stars: " + this.stars);
		System.out.println("Attribute:" + this.attribute + "\n");
		System.out.println("Type:" + this.type.toString());
		System.out.println("Description:" + this.description + "\n");
		
	}

	public Events getTrigger() {
		return trigger;
	}

	public void setTrigger(Events trigger) {
		this.trigger = trigger;
	}


	public List<Flags> getFlags() {
		return flags;
	}

	public void setFlags(List<Flags> flags) {
		this.flags = flags;
	}
		
	

}
